﻿// 5150. 顶牛.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*
https://www.acwing.com/problem/content/5153/

约翰的农场中有 n
 头奶牛，编号 1∼n
。

为了决出谁才是牛中强者，它们之间决定来一场顶牛大赛。

已知，每两头奶牛之间都会有一场一对一对决，对决可能产生以下几种结果：没有牛被顶翻、一头牛被顶翻、两头牛都被顶翻。

所有对决的结果已经用一个 n×n
 的整数矩阵 A
 记录了下来。

矩阵中第 i
 行第 j
 列的数字 Aij
 用来描述奶牛 i
 和奶牛 j
 之间的对决结果，Aij
 可能有以下几种取值：

−1
：当且仅当 i=j
 时，Aij=−1
 成立。无实际意义，毕竟一头牛不会自己顶自己。
0
：表示两头奶牛都没有被对方顶翻。
1
：表示奶牛 i
 被顶翻了。
2
：表示奶牛 j
 被顶翻了。
3
：表示奶牛 i
 和奶牛 j
 都被顶翻了。
矩阵记录的结果一定是正确的，不会出现自相矛盾的地方。

也就是说，若 Aij=1
，则 Aji=2
；若 Aij=3
，则 Aji=3
；若 Aij=0
，则 Aji=0
。

如果一头奶牛在所有对决中从未被顶翻过，那么这头奶牛就被认为是一头强牛。

请你统计所有奶牛中一共有多少个强牛以及哪些牛是强牛。

输入格式
第一行包含一个整数 n
。

接下来 n
 行，每行包含 n
 个整数，其中第 i
 行第 j
 列的整数表示 Aij
。

输出格式
首先输出一行一个整数，表示强牛的数量。

如果强牛的数量为 0
，则输出结束。

如果强牛的数量不为 0
，则在第二行按照编号升序的顺序输出所有强牛的编号。

数据范围
前 3
 个测试点满足 1≤n≤4
。
所有测试点满足 1≤n≤100
，−1≤Aij≤3
。

输入样例1：
3
-1 0 0
0 -1 1
0 2 -1
输出样例1：
2
1 3
输入样例2：
4
-1 3 3 3
3 -1 3 3
3 3 -1 3
3 3 3 -1
输出样例2：
0
输入样例3：
1
-1
输出样例3：
1
1
*/
int main()
{
    std::cout << "Hello World!\n";
}

 